import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * Creat by TanLei
 * Description:
 * User:86183
 * Date:2022-06-16
 * Time:13:51
 */
public class Test14 {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        //1.先让用户输入一个带扫描的路径
        System.out.println("请输入要扫描的目录路径：");
        String rootDirpath = scanner.next();
        File rootDir = new File(rootDirpath);
        if(!rootDir.exists()){
            //如果给定的这个路径不存在，或者不是目录，就直接提示出错！
            System.out.println("您输入的扫描路径非法！");
            return;
        }
        //3.输入要删除的文件
        System.out.println("请输入要删除的文件名");
        String deleteFileName = scanner.next();
        //4.遍历当前这个目录，找到所有文件名和待删除文件名匹配的文件
        List<File> result = new ArrayList<>();
        //期望通过scanDir 这个方法，把所有和de'leteFileName 匹配的文件，都给找出来，放到result中
        scanDir(rootDir,deleteFileName,result);
        //5.进行删除操作，把result里找到的所有文件，都依次进行删除。
        for(File f:result){
            System.out.println(f.getCanonicalPath()+"该文件是否确认删除?Y/n");
            String choice = scanner.next();
            if(choice.equals("Y")){
                f.delete();
                System.out.println(f.getCanonicalPath()+"该文件删除成功！");
            }
        }


    }
    private static void scanDir(File rootDir,String deleteFilename,List<File> result) throws IOException {
        //首先，先罗列出rootDir 下都有哪些文件。
       File[] files =  rootDir.listFiles() ;
       for(File f:files){
           System.out.println("扫描了文件"+f.getCanonicalPath());
           if(f.isFile()){
               if(f.getName().equals(deleteFilename)){
                   result.add(f);
               }else if(f.isDirectory()){
                    //是目录文件，就递归的调用scanDir方法，针对这个目录，在进一步的判定
                   scanDir(f,deleteFilename,result);
               }
           }
       }
    }
}
